package com.dhcc.bpm.modules.scf.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class DateConversionExample {

    public String processInvoiceDate(String invoiceDateToString) {
        DateTimeFormatter[] formatters = {
                DateTimeFormatter.ofPattern("yyyy.M.d"),
                DateTimeFormatter.ofPattern("yyyy.M.dd"),
                DateTimeFormatter.ofPattern("yyyy.MM.d"),
                DateTimeFormatter.ofPattern("yyyy.MM.dd")
        };

        for (DateTimeFormatter formatter : formatters) {
            try {
                // 尝试使用当前年份 + 不规范的开票日期 进行解析
                LocalDate localDate = LocalDate.parse(LocalDate.now().getYear() + "." + invoiceDateToString, formatter);
                // 生成合规开票日期，年份默认为当年
                return localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
            } catch (Exception ignored) {
                // 解析失败，尝试下一个格式
            }
        }

        // 如果所有格式都无法解析，可以返回一个默认值或者抛出异常，这里返回空字符串示例
        return "";
    }

    public String formatDateString(String dateText) {
        try {
            SimpleDateFormat inputFormat = new SimpleDateFormat("yyyyMMdd");
            SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");

            Date date = inputFormat.parse(dateText);
            return outputFormat.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
            // 可以根据实际情况处理异常，比如返回一个默认值或者抛出自定义异常
            return null;
        }
    }

    public String reParsingTime(String oldTime) {
        // 定义时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HHmmss");
        // 解析时间字符串
        LocalTime newTime = LocalTime.parse(oldTime.replaceAll(":", ""), formatter);
        return newTime.toString();
    }
}
